Program Comprehension Assisted by Slicing and Transformation
نویسندگان
چکیده
Program slicing is a technique for program simpli cation based upon the deletion of statements which cannot a ect the values of a chosen set of variables. Because slicing extracts a subcomponent of the program concerned with some speci c computation on a set of variables, it can be used to assist program comprehension, allowing a programmer to remodularise a program according to arbitrarily selected slicing criteria. In this paper it is shown that the simpli cation power of slicing can be improved if the syntactic restriction to statement deletion is removed, allowing slices to be constructed using any simplifying transformation which preserves the e ect of the original program upon the set of variables of interest. It is also shown that quasi static slicing, rst proposed by Venkatesh (and de ned here in a slightly more general form), is the most suitable slicing paradigm for program comprehension. The various forms of slice are formally de ned, an algorithm, based upon transformation, symbolic execution and conventional slicing is introduced for computing syntactically unrestricted, quasi static slices. A worked example is used to show how this approach supports program comprehension by case analysis and simpli cation.
منابع مشابه
Program Slicing via FermaT Transformations
In this paper we give a brief introduction to the foundations of WSL transformation theory and describe how the concept of program slicing can be formalised in the theory. This formalism naturally lends itself to several generalisations including amorphous slicing and conditioned slicing. One novel generalisation is “semantic slicing” which combines slicing and abstraction to a specification. I...
متن کاملAn Overview of the Indus Framework for Analysis and Slicing of Concurrent Java Software
Program slicing is a program analysis and transformation technique that has been successfully applied in a wide range of applications including program comprehension, debugging, maintenance, testing, and verification. However, there are only a few full-featured implementations of program slicing that are available for industrial applications or academic research. In particular, very little tool...
متن کاملAn Analysis of the Current Program Slicing and Algorithmic Debugging Based Techniques
slice provides additional information: it says for each statement in the slice if the condition c =‘\n’ will be satisfied or not. (1) read(text); [false] (2) read(n); [false] (3) lines = 1; [c!=‘\n’] (4) chars = 1; [false] (5) subtext = ""; [false] (6) c = getChar(text); [false] (7) while (c != ‘\eof’) [false] (8) if (c == ‘\n’) [false] (9) then lines = lines + 1; [false] (10) chars = chars + 1...
متن کاملAn Empirical Study of Amorphous Slicing as a Program Comprehension Support Tool
Amorphous program slicing relaxes the syntactic constraint of traditional slicing and can therefore produce considerably smaller slices. This simplification power can be used to answer questions a software engineer might have about a program by first augmenting the program to make the question explicit and then slicing out an answer. One benefit of this technique is that the answer is in the fo...
متن کاملA Novel Approach to Program Comprehension Process Using Slicing Techniques
The target of this research is to determine how program slicing contributes to program comprehension and to enhance its functionality by applying the slicing tree concept to its implementation. Slicing tree is a concept that refers to automatically repeating program slicing while the slicing criterion is changeable until the program decomposes into its atomic parts. Using this technique offers ...
متن کامل